home *** CD-ROM | disk | FTP | other *** search
-
- /*
- ** cdplay_demo.c
- **
- ** © 1995, 96 by Patrick Hess, all rights reserved.
- ** $VER: cdplay_demo.c 1.0 (20.09.1996)
- **
- ** simple usage demo of the cdplay.library
- **
- */
-
-
- /* I`m always using my all.gst file with precompiled includes.
- You have to insert necessary includes yourself, sorry! */
-
-
- #include <libraries/cdplay.h>
- #include <proto/cdplay_protos.h>
- #include <pragmas/cdplay_pragmas.h>
-
- struct Library *CDPlayBase;
-
- void main (int argc, char **argv)
- {
- struct CDRequest *cdr;
-
- int i = 0;
-
- if (argc != 2)
- {
- Printf ("Usage: %s <Arg>\n", argv[0]);
- exit (NULL);
- }
-
-
- if (CDPlayBase = OpenLibrary (CDPLAYNAME, CDPLAYVERSION))
- {
- if (cdr = CDOpenDrive ("2060scsi.device", 2))
- {
- Printf ("Device is open.\n");
-
- switch (argv[1][0])
- {
- case 'd':
- Printf ("%s\n", cdr->cdr_ID);
- break;
-
- case 'j':
- CDJump (((argv[1][1] == '-') ? -150 : 150), cdr);
- break;
-
- case 'l':
- CDLockDrive ((argv[1][1] == '1' ? TRUE : FALSE), cdr);
- break;
-
- case 'o':
- CDOpen (cdr);
- break;
-
- case 'c':
- CDClose (cdr);
- break;
-
- case 's':
- CDStop (cdr);
- break;
-
- case 'n':
- CDNext (cdr);
- break;
-
- case 'b':
- CDPrev (cdr);
- break;
-
- case 'g':
- CDPlay ((argv[1][1] - '0'), cdr);
- break;
-
- case 'p':
- CDPause ((argv[1][1] == '1' ? TRUE : FALSE), cdr);
- break;
-
- case 't':
- Printf ("Title: %02ld:%02ld of %02ld:%02ld, %02ld:%02ld remaining.\n",
- base2min (cdr->cdr_Time->cdt_TrackCurBase), base2sec (cdr->cdr_Time->cdt_TrackCurBase),
- base2min (cdr->cdr_Time->cdt_TrackCompleteBase), base2sec (cdr->cdr_Time->cdt_TrackCompleteBase),
- base2min (cdr->cdr_Time->cdt_TrackRemainBase), base2sec (cdr->cdr_Time->cdt_TrackRemainBase));
-
- Printf ("CD: %02ld:%02ld of %02ld:%02ld, %02ld:%02ld remaining.\n",
- base2min (cdr->cdr_Time->cdt_AllCurBase), base2sec (cdr->cdr_Time->cdt_AllCurBase),
- base2min (cdr->cdr_Time->cdt_AllCompleteBase), base2sec (cdr->cdr_Time->cdt_AllCompleteBase),
- base2min (cdr->cdr_Time->cdt_AllRemainBase), base2sec (cdr->cdr_Time->cdt_AllRemainBase));
- break;
-
- case 'i':
- Printf ("DeviceType %ld, ANSIVersion %ld, ResponseFormat %ld, ISOVersion %ld, ECMAVersion %ld.\n", cdr->cdr_Inquiry->cdi_DeviceType, cdr->cdr_Inquiry->cdi_ANSIVersion, cdr->cdr_Inquiry->cdi_ResponseFormat, cdr->cdr_Inquiry->cdi_ISOVersion, cdr->cdr_Inquiry->cdi_ECMAVersion);
- Printf ("%s (Vendor), %s (ProductID), %s (RevLevel), %s (VendorSpecific)\n", cdr->cdr_Inquiry->cdi_VendorID, cdr->cdr_Inquiry->cdi_ProductID, cdr->cdr_Inquiry->cdi_RevisionLevel, cdr->cdr_Inquiry->cdi_VendorSpecific);
-
- if (cdr->cdr_Active != SCSI_STAT_NO_DISK)
- {
- Printf ("%ld max sector, sector size %ld, %ld bytes capacity.\n", cdr->cdr_Capacity->cdc_MaxSector, cdr->cdr_Capacity->cdc_SectorSize, cdr->cdr_Capacity->cdc_Capacity);
-
- Printf ("%s, %s, %s, %s, %s\n%s, %s, %s, %s, %s.\n", (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_REMOVABLE) ? "REMOVABLE" : "NOT REMOVABLE"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_AENC) ? "AENC" : "NO AENC"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_REL_ADDRESS) ? "REL_ADDRESS" : "NO REL_ADDRESS"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_16WIDE_DATA) ? "16WIDE_DATA" : "NO 16WIDE_DATA"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_32WIDE_DATA) ? "32WIDE_DATA" : "NO 32WIDE_DATA"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_SYNC) ? "SYNC" : "NO SYNC"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_LINKED) ? "LINKED" : "NOT LINKED"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_CMDQUE) ? "CMDQUE" : "NO CMDQUE"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_SOFTRESET) ? "SOFTRESET" : "HARDRESET"),
- (btst (cdr->cdr_Inquiry->cdi_Flags, IFLAG_TRMIOP) ? "TRMIOP" : "NO TRMIOP"));
-
- Printf ("TOCSize %ld bytes, first track: %ld, last track: %ld\n", cdr->cdr_TOC->cdptoc_TOCSize, cdr->cdr_TOC->cdptoc_FirstTrack, cdr->cdr_TOC->cdptoc_LastTrack);
-
- for (i = cdr->cdr_TOC->cdptoc_FirstTrack; i <= cdr->cdr_TOC->cdptoc_LastTrack; i++)
- {
- struct CDTrack *tr;
-
- tr = &cdr->cdr_TOC->cdptoc_Track[i];
- Printf ("track %ld: position %ld, subchan %ld, %s pre_emph, %s copy proh., %s, %s\n", i, tr->tr_Position, tr->tr_SubChan, (btst (tr->tr_Flags, IFLAG_PRE_EMPHASIS) ? "" : "no"), (btst (tr->tr_Flags, IFLAG_COPY_PROHIBITED) ? "" : "no"), (btst (tr->tr_Flags, IFLAG_AUDIO_TRACK) ? "audio" : "data"), (btst (tr->tr_Flags, IFLAG_2_CHAN) ? "2 chan" : "4 chan"));
- }
-
- Printf ("cur track %ld, cur address %ld, active %ld\n", cdr->cdr_CurrentTrack, cdr->cdr_CurrentAddress, cdr->cdr_Active);
- }
- else
- PutStr ("no disk in drive\n");
- break;
-
- default:
- Printf ("unknown command.\n");
- break;
- }
-
- CDCloseDrive (cdr);
- }
- else
- PutStr ("Can`t open device.\n");
-
- CloseLibrary (CDPlayBase);
- }
- else
- Printf ("Can`t open \"%s\" Version %ld.\n", CDPLAYNAME, CDPLAYVERSION);
- }
-
-